# coding:utf-8
# 作者：理想国真恵玩
import functools
import time
import numpy as np
import random


def test_spend_time(func):
    """查看一段程序执行消耗的时间"""

    @functools.wraps(func)
    def inner(*args, **kwargs):
        # 开始时间
        start_time = time.time()
        # 运行代码
        result = func(*args, **kwargs)
        # 结束时间
        end_time = time.time()
        # 计算运行时间
        spend_time_result = end_time - start_time
        # 打印
        print(f'程序执行完毕，共耗时{spend_time_result}秒')
        # 装饰完毕，返回被装饰函数的执行结果
        return result

    # 返回内部函数
    return inner


# 列表
@test_spend_time
def sum_list():
    result = sum(range(100000000))
    return result


# ndarray
@test_spend_time
def sum_ndarray():
    # 转换为ndarray对象
    result = np.sum(np.arange(100000000))
    return result


# 执行测试
print(sum_list())
print('----------------------')
print(sum_ndarray())
